package common.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

/**
 * 随机-工具类
 * @author dwen
 *	2016年5月16日 下午2:38:21
 */
public class RandomUtils {

    /**
     * 随机整数
     * @param start	开始范围
     * @param end		结束范围
     * (开始数-结束数)
     * @return
     */
    public static int randomInt(int start,int end){
        Random random  = new Random();
        int result = random.nextInt(end)+start;
        return result;
    }
    /**
     * 返回32位随机数
     * @return
     */
    public static String random32() {
        String uuid32=UUID.randomUUID().toString().replace("-", "");
        return uuid32;
    }
    /**
     * 返回64位随机数
     * @return
     */
    public static String  random36() {
        String uuid36=UUID.randomUUID().toString();
        return uuid36;
    }
    /**
     * 订单编号返回30位随机数+时间
     * @return
     */
    public static String random30() {
        int machineId = 1;//最大支持1-9个集群机器部署
        int uuid=UUID.randomUUID().toString().hashCode();
        if(uuid < 0) {//有可能是负数
            uuid = - uuid;
        }
        // 0 代表前面补充0
        // 4 代表长度为4
        // d 代表参数为正数型
        String uuid16=machineId + String.format("%015d", uuid)+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        return uuid16;
    }
    /**
     * 随机生成6位随机数
     * @return
     */
    public static int random6() {
        int uuid6=((int)((Math.random()*9+1)*100000));
        return uuid6;
    }
    /**
     * 随机生成5位随机数
     * @return
     */
    public static int random5() {
        int uuid5=((int)((Math.random()*9+1)*10000));
        return uuid5;
    }
    /**
     * 随机生成4位随机数
     * @return
     */
    public static int random4() {
        int uuid4=((int)((Math.random()*9+1)*1000));
        return uuid4;
    }
    /**
     * 根据时间生成订单号
     * @return
     */
    public static String random17() {
        Date date = new Date();
        SimpleDateFormat format  = new SimpleDateFormat("yyyyMMddHHmmssSS");
        String uuid17=format.format(date);
        return uuid17;
    }

    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
        //20180428094301844
        String radno="20180428094301844";
        System.out.println(radno.length());

    }

    /**
     * 获取随机位数的字符串
     */
    public static String getRandomString(int length) {
        String base = "abcdefghijklmnopqrstuvwxyz0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number = random.nextInt(base.length());
            sb.append(base.charAt(number));
        }
        return sb.toString();
    }
}
